In the computing industry, the proper securing of sensitive information is of utmost importance. Today, there are various techniques for securing such information. One commonly used technique involves encrypting the data so that the data can only be decrypted (and thus used) by the intended individual or service. Encryption algorithms (e.g., AES, 3DES, and RC2) typically use an encryption key during the encryption and/or decryption process. In order to maintain the security of the encrypted data, however, the encryption key must be kept secret because, should the encryption key become compromised, the security of the encrypted data would be lost. Thus, the security of the data relies upon proper protection of the encryption keys.
Many of today's encryption key store services protect the encryption keys by encrypting them with an encryption key password that is a secret (i.e., known only to the user) and is used as a master key to encrypt and/or decrypt the encryption keys. Unfortunately, many of these services generate cryptographically weak encryption keys. Also, users often use sequences of letters and numbers that are easy to remember but are prone to dictionary attacks. In general, the weaker the encryption key, the weaker the system's security.
In addition, the master key is vulnerable to off-line attacks. For example, an attacker can gain physical access to a machine holding the key store, copy the key store, and then mount a password-guessing attack against the data. As soon as the attacker breaks the master password, all of the encryption keys in the store are immediately compromised.
X509 certificates are often used by processes for the securing of sensitive information and identification of trusted relationships. X509 certificates typically contain attributes describing the information in the certificate such as serial number, issuer, and subject name, for example. These attributes are usually specified in various standards documents and can be used as part of certificate validation and identification processes. In addition to the attributes internal to an X509 certificate, computer systems often need to manage and store additional information that is related to the certificate but not part of the actual certificate. The nature of the information is often application specific.
Regarding user accounts (e.g., online accounts), computer users today are often faced with the challenge of creating and managing passwords for a number of user accounts. The use of long random passwords offers some protection for their accounts, but a typical user remains prone to use weaker passwords (e.g., sequences of letters and numbers) because such passwords are easier for the user to remember. However, weak passwords can significantly lessen the security of a computer system because, for example, they can be prone to prone to dictionary attacks.
Also, in order to manage his or her multiple passwords, a user often writes down the passwords. This is a particularly unsafe practice because the user could misplace the item on which the passwords were written (e.g., a notebook or a post-it note) or, even worse, someone could obtain the user's passwords by taking the item on which the passwords were written, taking a picture of the passwords (e.g., by using a cell phone camera), or even by simply committing the passwords to memory while observing them in plain sight.
Some users purchase or subscribe to a password management software package to assist them with managing their many passwords. Many of today's password management services protect a user's passwords by using a master password to encrypt the other passwords, the idea being that the user only has to remember one password (i.e., the master password). The user's master password is thus the key used to encrypt and/or decrypt the user's other passwords. This is an appealing solution because the user only has to remember one password, but there are several security concerns. For example, the master password becomes an attack point. That is, if an attacker can gain physical access to a machine and copy the data store, the attacker can mount an off-line attack against the master password and, as soon as the master password has been broken, all of the passwords in the data store are immediately compromised.
Thus, a need remains for improved techniques pertaining to the creation and management of encryption keys and passwords.